From 744ba6479a9c932cd7bcc44c464663058fef54ce Mon Sep 17 00:00:00 2001 From: Keir Fraser Date: Wed, 22 Apr 2009 11:26:37 +0100 Subject: [PATCH] network-bridge: Fix for bonding If ${netdev} is bonding, brctl addif ${bridge} ${pdev} fails: can't add ${pdev} to bridge ${bridge}: Invalid argument Because ${pdev} has no slaves at this point.=20 # Notice that ifdown ${netdev} clears slaves of ${netdev}. This patch restores slaves before add_to_bridge2 ${bridge} ${pdev}. Signed-off-by: KUWAMURA Shin'ya --- tools/hotplug/Linux/network-bridge | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/tools/hotplug/Linux/network-bridge b/tools/hotplug/Linux/network-bridge index 091b8beb3e..954c0160b7 100644 --- a/tools/hotplug/Linux/network-bridge +++ b/tools/hotplug/Linux/network-bridge @@ -223,6 +223,10 @@ op_start () { preiftransfer ${netdev} transfer_addrs ${netdev} ${tdev} + # Remember slaves for bonding interface. + if [ -e /sys/class/net/${netdev}/bonding/slaves ]; then + slaves=`cat /sys/class/net/${netdev}/bonding/slaves` + fi # Remember the IP details for do_ifup. get_ip_info ${netdev} if ! ifdown ${netdev}; then @@ -234,6 +238,11 @@ op_start () { setup_bridge_port ${pdev} + # Restore slaves + if [ -n "${slaves}" ]; then + ip link set ${pdev} up + ifenslave ${pdev} ${slaves} + fi add_to_bridge2 ${bridge} ${pdev} do_ifup ${bridge} -- 2.30.2